Floating point to integer and integer to floating point conversions are typically implemented by software routines in numerical processors that support both floating point and integer numbers. For example, for 3D graphics, the texture coordinates (S, T) are specified by values of floating point numbers between 0.0 and 1.0. These coordinates are typically interpolated by a rasterizer, which then stores red, green, blue and alpha (RGBA) values to a frame buffer and the interpolated texture coordinates are stored in a texture buffer. The alpha value defines a transparency measure with alpha equal 1 being opaque and alpha equal 0 being fully transparent. When compositing two images, the resulting color is a linear combination of red, green and blue (RGB) and alpha values of the pixels.
A typical 3D graphics application consists of both transforms and lighting, and rasterization. An efficient implementation of the 3D graphics pipeline can be achieved by the use of different data types between texture coordinate interpolation and texture mapping calculations, hence the need for rapid conversion between data types. In order to increase performance of the implementation of the transform and lighting portion of the 3D pipeline, it has been recognized that efficient scaled conversion operations are especially important.